home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / out-of-phase-102-c / OutOfPhase 1.02 Source / OutOfPhase Folder / IncrementalParameterUpdator.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-23  |  4.7 KB  |  142 lines  |  [TEXT/KAHL]

  1. /* IncrementalParameterUpdator.h */
  2.  
  3. #ifndef Included_IncrementalParameterUpdator_h
  4. #define Included_IncrementalParameterUpdator_h
  5.  
  6. /* IncrementalParameterUpdator module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* BinaryCodedDecimal */
  12. /* PlayTrackInfoThang */
  13. /* Memory */
  14. /* TrackObject */
  15. /* LinearTransition */
  16. /* NoteObject */
  17. /* FrameObject */
  18.  
  19. #include "BinaryCodedDecimal.h"
  20.  
  21. struct IncrParamUpdateRec;
  22. typedef struct IncrParamUpdateRec IncrParamUpdateRec;
  23.  
  24. /* forwards */
  25. struct TrackObjectRec;
  26. struct LinearTransRec;
  27. struct FrameObjectRec;
  28. struct TempoControlRec;
  29.  
  30. #ifdef ShowMeIncrParamUpdateRec
  31. struct IncrParamUpdateRec
  32.     {
  33.         LargeBCDType                        DefaultStereoPosition;
  34.         LargeBCDType                        CurrentStereoPosition;
  35.         struct LinearTransRec*    StereoPositionChange;
  36.         long                                        StereoPositionChangeCountdown;
  37.  
  38.         LargeBCDType                        DefaultSurroundPosition;
  39.         LargeBCDType                        CurrentSurroundPosition;
  40.         struct LinearTransRec*    SurroundPositionChange;
  41.         long                                        SurroundPositionChangeCountdown;
  42.  
  43.         LargeBCDType                        DefaultVolume;
  44.         LargeBCDType                        CurrentVolume;
  45.         struct LinearTransRec*    VolumeChange;
  46.         long                                        VolumeChangeCountdown;
  47.  
  48.         LargeBCDType                        DefaultReleasePoint1;
  49.         LargeBCDType                        CurrentReleasePoint1;
  50.         struct LinearTransRec*    ReleasePoint1Change;
  51.         long                                        ReleasePoint1ChangeCountdown;
  52.         MyBoolean                                ReleasePoint1FromStart; /* True = start, False = end */
  53.  
  54.         LargeBCDType                        DefaultReleasePoint2;
  55.         LargeBCDType                        CurrentReleasePoint2;
  56.         struct LinearTransRec*    ReleasePoint2Change;
  57.         long                                        ReleasePoint2ChangeCountdown;
  58.         MyBoolean                                ReleasePoint2FromStart; /* True = start, False = end */
  59.  
  60.         LargeBCDType                        DefaultAccent1;
  61.         LargeBCDType                        CurrentAccent1;
  62.         struct LinearTransRec*    Accent1Change;
  63.         long                                        Accent1ChangeCountdown;
  64.  
  65.         LargeBCDType                        DefaultAccent2;
  66.         LargeBCDType                        CurrentAccent2;
  67.         struct LinearTransRec*    Accent2Change;
  68.         long                                        Accent2ChangeCountdown;
  69.  
  70.         LargeBCDType                        DefaultAccent3;
  71.         LargeBCDType                        CurrentAccent3;
  72.         struct LinearTransRec*    Accent3Change;
  73.         long                                        Accent3ChangeCountdown;
  74.  
  75.         LargeBCDType                        DefaultAccent4;
  76.         LargeBCDType                        CurrentAccent4;
  77.         struct LinearTransRec*    Accent4Change;
  78.         long                                        Accent4ChangeCountdown;
  79.  
  80.         LargeBCDType                        DefaultPitchDisplacementDepthLimit;
  81.         LargeBCDType                        CurrentPitchDisplacementDepthLimit;
  82.         struct LinearTransRec*    PitchDisplacementDepthLimitChange;
  83.         long                                        PitchDisplacementDepthLimitChangeCountdown;
  84.         MyBoolean                                PitchDisplacementDepthHertz; /* True = Hertz, False = Halfsteps */
  85.  
  86.         LargeBCDType                        DefaultPitchDisplacementRateLimit;
  87.         LargeBCDType                        CurrentPitchDisplacementRateLimit;
  88.         struct LinearTransRec*    PitchDisplacementRateLimitChange;
  89.         long                                        PitchDisplacementRateLimitChangeCountdown;
  90.  
  91.         LargeBCDType                        DefaultPitchDisplacementStartPoint;
  92.         LargeBCDType                        CurrentPitchDisplacementStartPoint;
  93.         struct LinearTransRec*    PitchDisplacementStartPointChange;
  94.         long                                        PitchDisplacementStartPointChangeCountdown;
  95.         MyBoolean                                PitchDisplacementStartPointFromStart; /* True = start, False = end */
  96.  
  97.         LargeBCDType                        DefaultHurryUp;
  98.         LargeBCDType                        CurrentHurryUp;
  99.         struct LinearTransRec*    HurryUpChange;
  100.         long                                        HurryUpChangeCountdown;
  101.  
  102.         LargeBCDType                        DefaultDetune;
  103.         LargeBCDType                        CurrentDetune;
  104.         struct LinearTransRec*    DetuneChange;
  105.         long                                        DetuneChangeCountdown;
  106.         MyBoolean                                DetuneHertz; /* True = hertz, False = Halfsteps */
  107.  
  108.         LargeBCDType                        DefaultEarlyLateAdjust;
  109.         LargeBCDType                        CurrentEarlyLateAdjust;
  110.         struct LinearTransRec*    EarlyLateAdjustChange;
  111.         long                                        EarlyLateAdjustChangeCountdown;
  112.  
  113.         LargeBCDType                        DefaultDurationAdjust;
  114.         LargeBCDType                        CurrentDurationAdjust;
  115.         struct LinearTransRec*    DurationAdjustChange;
  116.         long                                        DurationAdjustChangeCountdown;
  117.         MyBoolean                                DurationAdjustAdditive; /* True = additive, False = multiplicative */
  118.  
  119.         struct TempoControlRec*    TempoControl;
  120.  
  121.         long                                        TransposeHalfsteps;
  122.     };
  123. #endif
  124.  
  125. /* build a new incremental parameter updator */
  126. IncrParamUpdateRec*        NewInitializedParamUpdator(struct TrackObjectRec* Template,
  127.                                                 struct TempoControlRec* TempoControl);
  128.  
  129. /* dispose of the incremental parameter updator */
  130. void                                    DisposeParamUpdator(IncrParamUpdateRec* Updator);
  131.  
  132. /* execute a series of update cycles.  the value passed in is the number of */
  133. /* duration ticks.  there are DURATIONUPDATECLOCKRESOLUTION (64*2*3*5*7) ticks */
  134. /* in a whole note */
  135. void                                    ExecuteParamUpdate(IncrParamUpdateRec* Updator, long NumTicks);
  136.  
  137. /* evaluate a command frame & set any parameters accordingly */
  138. void                                    ExecuteParamCommandFrame(IncrParamUpdateRec* Updator,
  139.                                                 struct FrameObjectRec* CommandFrame);
  140.  
  141. #endif
  142.